projects
/
xen.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
38ad8d2
)
[TAPDISK] Fix qcow initialization bug.
author
Jake Wires
<jwires@xensource.com>
Tue, 10 Apr 2007 18:40:43 +0000
(11:40 -0700)
committer
Jake Wires
<jwires@xensource.com>
Tue, 10 Apr 2007 18:40:43 +0000
(11:40 -0700)
fd_end was being incorrectly initialized upon open, leading to data corruption.
Signed-off-by: Jake Wires <jwires@xensource.com>
tools/blktap/drivers/block-qcow.c
patch
|
blob
|
history
diff --git
a/tools/blktap/drivers/block-qcow.c
b/tools/blktap/drivers/block-qcow.c
index b0822f729df9f46115969fa0f5fde834ec8c747a..2e5532a7cb6f35b4b50d034170ffec4865a5d79b 100644
(file)
--- a/
tools/blktap/drivers/block-qcow.c
+++ b/
tools/blktap/drivers/block-qcow.c
@@
-949,8
+949,14
@@
int tdqcow_open (struct disk_driver *dd, const char *name, td_flag_t flags)
goto fail;
}
init_fds(dd);
- s->fd_end = (final_cluster == 0 ? (s->l1_table_offset + l1_table_size) :
- (final_cluster + s->cluster_size));
+
+ if (!final_cluster)
+ s->fd_end = s->l1_table_offset + l1_table_size;
+ else {
+ s->fd_end = lseek64(fd, 0, SEEK_END);
+ if (s->fd_end == (off64_t)-1)
+ goto fail;
+ }
return 0;